package cn.patient.pp.module.fiveInOne.controller.admin.vo;

import lombok.*;

import java.time.LocalDate;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.patient.pp.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.patient.pp.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 重点人员包保信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class KeyPersonProtectionPageReqVO extends PageParam {

    @Schema(description = "管理机构id", example = "23520")
    private Long deptId;

    @Schema(description = "管理机构ids", example = "[23520, 23521]")
    private List<Long> deptIds;

    @Schema(description = "患者姓名", example = "张三")
    private String patientName;
    @Schema(description = "患者编号", example = "张三")
    private String patientCode;

    @Schema(description = "证件号码")
    private String idNumber;

    @Schema(description = "患者性别")
    private String gender;

    @Schema(description = "出生日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDate[] birthDate;

    @Schema(description = "患者电话")
    private String phone;

    @Schema(description = "现住详细地址")
    private String currentAddress;

    @Schema(description = "监护人")
    private String guardian;

    @Schema(description = "监护人电话")
    private String contact;

    @Schema(description = "患者监护人关系")
    private String guardianPatientRelationship;

    @Schema(description = "包保乡干部姓名", example = "张三")
    private String townCadreName;

    @Schema(description = "包保乡干部电话")
    private String townCadrePhone;

    @Schema(description = "包保村干部姓名", example = "赵六")
    private String villageCadreName;

    @Schema(description = "包保村干部电话")
    private String villageCadrePhone;

    @Schema(description = "包保民警姓名", example = "李四")
    private String policeName;

    @Schema(description = "精防医生姓名", example = "芋艿")
    private String doctorName;

    @Schema(description = "包保民警电话")
    private String policePhone;

    @Schema(description = "精防医生电话")
    private String doctorPhone;

    @Schema(description = "评定的风险等级")
    private String riskAssessment;

    @Schema(description = "备注（2025年新评定录入人员请标注“2025”）", example = "你说的对")
    private String remark;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}